﻿using boda.net.wpf.core.Languages;

using Prism.Events;
using Prism.Ioc;
using Prism.Modularity;
using Prism.Regions;
using Prism.Services.Dialogs;

namespace boda.net.wpf.core.Ioc;
[ExposedService(true, LifeTime.Singleton)]
public sealed class PrismProvider
{
    public PrismProvider(IContainerExtension containerExtension,
                         IDialogService dialogService,
                         IEventAggregator eventAggregator,
                         IModuleManager moduleManager,
                         IRegionManager regionManager,
                         ILanguageManager language)
    {
        Container = containerExtension;
        DialogService = dialogService;
        EventAggregator = eventAggregator;
        ModuleManager = moduleManager;
        RegionManager = regionManager;
        LanguageManager = language;
    }

    public static ILanguageManager LanguageManager { get; private set; }

    public static IContainerExtension Container { get; private set; }


    public static IRegionManager RegionManager { get; private set; }


    public static IDialogService DialogService { get; private set; }


    public static IEventAggregator EventAggregator { get; private set; }

    public static IModuleManager ModuleManager { get; private set; }

}
